/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package BL;

import BE.BEPallet;
import BE.BEPosicionxRack;
import DA.DAPosicionxrack;
import java.util.ArrayList;

/**
 *
 * @author Cristian
 */
public class BLPosicionxrack {
    
    private ArrayList<BEPosicionxRack> lstPosicion;
    private DAPosicionxrack dapos;
    
    public BLPosicionxrack()
    {
        lstPosicion= new ArrayList<BEPosicionxRack>();
        dapos= new DAPosicionxrack();
    }
    
    public ArrayList<BEPosicionxRack> cargar() {

        setLstPosicion(getDapos().cargar());
        return getLstPosicion();
    }


    public void cambiarEstado (int id, int estado){
        
        getDapos().cambiarEstado(id, estado);
    }



     public BEPosicionxRack getById(int id){
     
        return getDapos().getById(id);

     }


       public ArrayList<BEPosicionxRack> posicionebyRack(int idrack) {
           DAPosicionxrack dapxr=new DAPosicionxrack();
           return dapxr.getByIdRack(idrack);
       }
     
     public ArrayList<BEPosicionxRack> obtenerPosicionesPorIDRack(int idRack)
    {
        cargar();
        ArrayList<BEPosicionxRack> auxList= new ArrayList<BEPosicionxRack>();
        
        for(BEPosicionxRack p:getLstPosicion())
        {
            if(p.getIdrack()==idRack) auxList.add(p);
        }
        
        return auxList;
    }
     
     boolean hayEspacio(int idRack, BEPallet objPallet) {
        
        ArrayList<BEPosicionxRack> auxLstPos= obtenerPosicionesPorIDRack(idRack);
        
        for(BEPosicionxRack pos:auxLstPos)
        {
            if (pos.getEstado()==0) return true;
        }
        
        return false;
    }

    public void actualizarPosicion(BEPosicionxRack objPosAux) {
        
        getDapos().actualizarPosicion(objPosAux);
    }
    
    public void liberarPosicion (BEPosicionxRack objPosAux){
        getDapos().liberarPosicion(objPosAux);
    }

    public ArrayList<BEPosicionxRack> getLstPosicion() {
        return lstPosicion;
    }

    public void setLstPosicion(ArrayList<BEPosicionxRack> lstPosicion) {
        this.lstPosicion = lstPosicion;
    }

    public DAPosicionxrack getDapos() {
        return dapos;
    }
    
    
    public ArrayList<BEPosicionxRack> getTodos() {
         DAPosicionxrack dapxr=new DAPosicionxrack();
           return dapxr.getTodos();
    }

    public void setDapos(DAPosicionxrack dapos) {
        this.dapos = dapos;
    }
     public void cambiarEstado2 (int id, int estado){
         DAPosicionxrack dapxr=new DAPosicionxrack();
         dapxr.cambiarEstado(id, estado);
     }

    public ArrayList<BEPosicionxRack> cargarPosicionesPorTipoProducto(int idTipoProducto) 
    {
        setLstPosicion(getDapos().cargarPosicionesPorTipoProducto(idTipoProducto));
        return getLstPosicion();
    }

}
